﻿<!DOCTYPE HTML>
<html lang="en">
<head>
<title>是否基于 - 语法 &amp; 使用 | AutoHotkey v2</title>
<meta name="description" content="The 是否基于 function returns a non-zero number 如果 the specified value is derived from the specified base 对象." />
<meta name="ahk:equiv-v1" content="AutoHotkey.htm" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<link href="../static/theme.css" rel="stylesheet" type="text/css" />
<script src="../static/content.js" type="text/javascript"></script>
<script type="text/javascript">$(function(){0<=window.navigator.userAgent.toLowerCase().indexOf("ucbrowser")&&CaoNiMaDeUc()})</script>
</head>
<body>

<h1>是否基于</h1>

<p>如果指定的值派生自指定的基对象, 则返回非零数字.</p>

 <pre class="Syntax">是否基于 := <span class="func">是否基于</span>(Value, BaseObj)</pre>
<h2 id="Parameters">参数</h2>
<dl>
  <dt>Value</dt>
  <dd>
    <p>任何类型的任何值.</p>
  </dd>
  <dt>BaseObj</dt>
  <dd>
    <p>类型: <a href="../Concepts.htm#objects">对象</a></p>
    <p>要测试的潜在基对象.</p>
  </dd>
</dl>

<h2 id="Return_Value">返回值</h2>
<p>类型: <a href="../Concepts.htm#boolean">整数(布尔值)</a></p>
<p>如果 <em>BaseObj</em> 在 <em>Value</em> 的基对象链中, 函数返回 true, 否则返回 false.</p>

<h2 id="Remarks">备注</h2>
<p>下面的代码大致相当于这个函数:</p>
<pre>MyHasBase(Value, BaseObj) {
    b := Value
    while b := 获取父对象(b)
        如果 b = BaseObj
            返回 true
    返回 false
}</pre>
<p>例如, 如果 <em>Obj</em> 是数组或任何派生类的实例, 则 <code>是否基于(Obj, 数组.Prototype)</code> 为 true. 这与 <code>Obj is 数组</code> 执行的检查相同; 但是, 实例可以基于其他实例, 而 <code>is</code> 需要一个类.</p>
<p>是否基于 同时接受对象和<a href="../Objects.htm#primitive">原始值</a>. 例如, <code>是否基于(1, 0.base)</code> 返回 true.</p>
<p>由于 COM 对象不是从任何 AutoHotkey 对象派生的, 如果给定一个 <a href="ComObject.htm">组件对象</a>, 是否基于 总是返回 0.</p>

<h2 id="Related">相关</h2>
<p><a href="../Objects.htm">Objects</a>, <a href="../objects/Object.htm#Base">Obj.Base</a>, <a href="../objects/Any.htm#GetBase">获取父对象</a>, <a href="HasMethod.htm">包含方法</a>, <a href="HasProp.htm">包含属性</a></p>

<h2 id="Examples">示例</h2>
<div class="ex" id="ExBasic">
<p><a href="#ExBasic">#1</a></p>
<pre>
thebase := {key: "value"}
derived := {base: thebase}
信息框 是否基于(thebase, derived) <em>; 0</em>
信息框 是否基于(derived, thebase) <em>; 1</em>
</pre>
</div>

</body>
</html>